小编典典

在Eclipse中运行时从pom获取Maven项目版本和工件ID

java

当我遇到这个问题在运行时获取Maven工件版本时,我一直在寻找如何从maven
pom或清单中获取应用程序名称(工件ID)和版本。

当我打包项目时,上面的内容对我有用,但是当我尝试使用eclipse运行程序时,似乎什么也没用。我在构建时尝试使用.properties方法,因为我认为这与包无关,但仍然没有得到结果。如果有人对这个问题有想法或解决方案,将不胜感激。

我的最后一次尝试是在下面。打包(有效)时使用清单,并在Eclipse中运行时尝试获取.properties文件。

String appVersion = getClass().getPackage().getImplementationVersion();
    if(appVersion == null || "".equals(appVersion)) {
        appVersion = Glob.getString(appVersion);
        if(appVersion == null || "".equals(appVersion)) {
            System.exit(0);
        }
    }

阅读 287

收藏
2020-10-20

共1个答案

小编典典

创建一个属性文件

src/main/resources/project.properties

具有以下内容

version=${project.version}
artifactId=${project.artifactId}

现在打开Maven资源过滤

  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>

以便将该文件处理为

target/classes/project.properties

内容与此相似

version=1.5
artifactId=my-artifact

现在,您可以读取此属性文件以获取所需的内容,并且此属性每次都可以工作。

final Properties properties = new Properties();
properties.load(this.getClassLoader().getResourceAsStream("project.properties"));
System.out.println(properties.getProperty("version"));
System.out.println(properties.getProperty("artifactId"));
2020-10-20